package com.ruoyi.warning.domain.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 防火墙相关
 * </p>
 *
 * @author chenhc
 * @since 2025-07-23
 */
@Data
@TableName("firewall")
public class Firewall implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId
    private String firewallId;
    /**
     * ip
     */
    private String hostname;

    /**
     * 名称
     */
    private String name;

    /**
     * 运行时间
     */
    private String runtime;

    /**
     * 序列号
     */
    private String serial;

    /**
     * 系统版本
     */
    private String version;

    /**
     * cpu数量
     */
    private Integer cpuCount;

    /**
     * cpu总利用率
     */
    private Integer totalCpuUtilization;

    /**
     * 内存利用率
     */
    private Integer memoryUtilization;

    /**
     * 总内存大小
     */
    private Long totalMemorySize;

    /**
     * 并发连接数
     */
    private Integer concurrentConnectionsCount;

    /**
     * 每秒新建连接数（1分钟平均）
     */
    private Integer newConnections1m;

    /**
     * 每秒新建连接数（10分钟平均）
     */
    private Integer newConnections10m;

    /**
     * 每秒新建连接数（30分钟平均）
     */
    private Integer newConnections30m;

    /**
     * 每秒新建连接数（60分钟平均）
     */
    private Integer newConnections60m;

    /**
     * 设备Licence名称
     */
    private String licenceName;

    /**
     * 设备Licence到期时间
     */
    private String licenceExpirationTime;

    private Integer deviceId;
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;

    // 协议错误丢失
    private Integer protocolErrorLoss;
}
